В определенный момент развития человечеству, а особенно его части, не обладающей безграничными средствами, потребовалось наладить обмен информацией в цифровом виде. Но в силу ограниченности бюджета у большинства потребителей компьютерных технологий не было возможности тянуть кабели, строить радиоканалы или использовать спутниковые коммуникации. Пришлось придумать что-то попроще и подешевле. Дешевой альтернативой стали телефонные кабели, в изобилии разбросанные по городу заботливыми телефонистами, и в наше светлое настоящее дошедшие практически до любой квартиры. Осталось только придумать, как засунуть в дешевую «лапшу», с трудом передающую голос, цифру, и не просто засунуть, а засунуть туда объемы побольше, а также довести через кучу преград, в лице раздолбанных АТС, до адресата.
Именно поиск способа передавать данные по уже имевшимся на тот момент средствам коммуникации, то есть телефонным проводам, и привел к появлению модемной связи по коммутируемым телефонным линиям, которая долгое время оставалась единственным доступным способом соединить два достаточно удаленных компьютера и получить доступ в Интернет для большинства пользователей.
Понятие модема
Своим названием модем обязан принципу передачи сигнала через телефонную линию. Цифровой сигнал имеет форму меандра, и для непосредственной передачи требуется очень широкая полоса пропускания. Телефонная же линия ее не предоставляет, поэтому сигнал перед передачей преобразовывается к виду, удобному для передачи, а именно: происходит модуляция синусоиды несущей частоты. И наоборот, процесс приема сигнала из линии и восстановление из него исходных цифровых данных называется демодуляцией. Отсюда название: МОдулятор/ДЕМодулятор, или сокращенно – МОДЕМ.
Виды сигналов
Для передачи информации по какой-либо среде (провод, радио и т.д.) можно использовать два вида сигнала. Это меандр и синусоида. Меандром называется прямоугольный сигнал. При этом нижним уровнем сигнала кодируется одно состояние, а верхним – другое. При этом таких уровней может быть несколько. Такой вид передачи наиболее прост для реализации, однако имеет и существенный недостаток: при передаче сигнал использует всю полосу пропускания кабеля, и в идеале она должна быть неограниченной. Также неограниченность спектра сигнала приводит к большой помехочувствительности, поэтому этот вид используется только для передачи на небольшие расстояния по качественным линиям связи.
Синусоидальный сигнал, как ясно из названия, имеет вид синусоиды. Для передачи информации выбирается несущая частота, оптимальная для существующей полосы пропускания канала. И уже эту несущую, точнее, какие-либо ее характеристики, видоизменяют или «модулируют» для кодирования этими изменениями двоичной информации. Данный способ передачи гораздо лучше использует ресурсы полосы пропускания и позволяет по узкополосным каналам передавать цифровую информацию. Плюсом этого метода является более высокая помехоустойчивость в условиях узкой полосы пропускания, а недостатком – высокая сложность оборудования для формирования сигнала описанного вида. Именно этот способ используется для передачи информации по каналам плохого качества, в том числе и в модемах.
Принцип модуляции
Модуляция несущей синусоиды с целью кодирования данных может происходить несколькими путями. В модемах обычно используется не один, а сочетание нескольких методов модуляции для достижения максимальной скорости передачи.
Амплитудная модуляция несущей
Первый способ – это кодирование информации с помощью изменения амплитуды синусоиды. Так, например, кусок с меньшей амплитудой может соответствовать состоянию «ноль», а с большей – «единице». Может быть несколько уровней амплитуды и, соответственно, чем больше их будет, тем больший объем информации мы сможем запихнуть в одно колебание. К сожалению, увеличение количества уровней приводит к увеличению вероятности появления ошибки при приеме сигнала на другом конце линии, поэтому приходится искать компромисс между скоростью передачи и помехоустойчивостью.
Частотная модуляция несущей
Это вариант модуляции, когда изменяемым параметром синусоиды является не амплитуда, а ее частота. Увеличение частоты синусоиды в два раза может быть признаком перехода от нуля к единице.
Фазовая модуляция несущей
В этом случае параметром, с помощью которого кодируется информация, является фаза синусоидального сигнала. Так, например, изменение фазы сигнала на 180 градусов может означать переход сигнала с нуля на единицу. Опять таки, угол изменения фазы можно уменьшать для увеличения количества передаваемой информации, но только в ущерб помехоустойчивости.
Существующие АТС
На просторах нашей великой и необъятной Родины можно встретить все достижения научно-технической мысли человека, созданные на протяжении последнего столетия. Только у нас шедевры первых пятилеток, предназначенные для кое-какой связи немногочисленных пользователей телефонии, могут соседствовать с ультрасовременными цифровыми АТС.
Вот два наиболее распространенных их вида:
Электромеханические АТС. Это представители самого пожилого семейства коммутирующей телефонной аппаратуры. Коммутация абонентов осуществляется, как следует из названия, механическим способом. Схемы управления упомянутыми переключателями совмещены с аппаратурой коммутации. Межстанционная связь у таких АТС обычно осуществляется по коаксиальному кабелю, обладающему намного более широкой полосой пропускания по сравнению со стандартной лапшой абонентов. Многочисленные разговоры интегрируются в нее при помощи механизма «частотного уплотнения». Его суть в том, чтобы несколько телефонных разговоров, каждый из которых занимает стандартную полосу от 300 до 3400 Гц и предназначен для передачи по обычной узкополосной телефонной лапше, разнести на разные частоты и засунуть в один широкополосный кабель. Данный вид АТС обладает кучей недостатков. Основные – большое количество помех, вносимых из-за механической коммутации и необходимости модулировать сигнал в более высокочастотную несущую и демодулировать обратно. Именно следствием этого являются свисты и скрипы при разговоре. Так что индивидуумам, волею судеб связавших свою жизнь с подобными агрегатами, можно только посочувствовать.
Цифровые АТС. Это новое поколение АТС, в которых схемы управления коммутацией звонков разнесены непосредственно со схемами коммутации. Сама же коммутация осуществляется не механическими, а электронными элементами. Межстанционная связь осуществляется при помощи механизма временного уплотнения узкополосных сигналов в один широкополосный. При этом аналоговый сигнал, полученный от абонента, оцифровывается и между станциями передается уже в цифровом виде. Это позволяет передавать сигналы между АТС не непрерывно на разных частотах, а дискретными порциями, вперемешку с порциями других сигналов. Передача происходит по высокоскоростному каналу, поэтому на выходе каждый сигнал успевает «собраться», после чего в аналоговом виде выдается в телефонную пару конечного абонента. Вышеописанный механизм именуется «временным уплотнением». Преимуществом таких АТС является гораздо меньший уровень помех, так как при передаче сигналов между станциями в цифровом виде искажений не вносится, и помехи могут возникнуть только на участке провода Абонент-АТС. Если ты сидишь именно на такой станции, считай, что тебе повезло. Как минимум, она позволит устанавливать более устойчивую связь с другими модемами, а при наличии на ней цифрового окончания провайдера, через которого ты выходишь в Интернет, даст возможность развивать скорость до 56К.
Проблемы
Думаем, ты в общих чертах знаешь, что представляет собой обычная аналоговая телефония. Это километр-другой плоского двужильного телефонного кабеля, лежащего в беспорядке в наполовину наполненных водой грязных телефонных колодцах, перемешанного с другими проводами непонятного назначения. Причем «лапша» – неэкранированный кабель, и в этом клубке все провода создают наводки на все остальные. И даже тот редкий сигнал, который долетит до середины Днепра… В общем, на АТС голос во время коммутации будет плющить и корежить. Чтобы было понятнее, как, смотри схему.
Между модемами данные передаются в аналоговом виде, и при попытке поднять трубку во время сеанса связи мы услышим шипение – так ухо воспринимает генерируемые модемом сигналы. Между компьютерами же данные передаются в цифровом виде – в аналоговую фирму их прозрачно (то есть «незаметно» для компьютера) преобразует модем. Обеспечение помехоустойчивости и гарантирование доставки информации получателю осуществляется при помощи алгоритмов кодирования, внесения избыточности в передаваемую информацию и квитирования (подтверждения доставки) передаваемых пакетов. В общем, проблем у модема много, и все их ему надо разрешить для успешной пересылки фотографий от Васи к Оле. Ниже описаны некоторые из них.
Ограниченная полоса пропускания
Есть мнение, что для передачи разборчивого голоса по телефонной сети нам достаточно 3000 Гц. Вроде бы больше нам и не надо – мы больше не съедим. Таким образом, что в трубку ни кричи, все «слишком» низкие и высокие звуки (ниже 300 и выше 3400 Гц) бездушные машины на АТС безжалостно отрезают. Так что попытки модема шагнуть за пределы этого диапазона будут безжалостно пресекаться непониманием на другой стороне.
Большая зашумленность
Как уже было упомянуто выше, условия залегания кабеля и принципы коммутации голосовых каналов создают огромное количество помех, которые мы можем слышать даже при обычном телефонном разговоре «невооруженным» ухом. О модеме и говорить не приходится – он, как существо чувствительное, очень к этому делу капризен.
Методы борьбы
Для того чтобы через все это счастье успеть передать как можно больше данных за единицу времени, предпринимаются определенные шаги.
Совершенствуются методы модуляции. С каждым новым принятым стандартом, устанавливающим новый рекорд скорости, изменяется алгоритм модуляции цифрового сигнала в несущую. Так как символьную скорость увеличивать дальше некуда (она практически равна пропускной способности канала – 3100 Гц), увеличивается информационная емкость каждого колебания. В последних стандартах используется сочетание фазовой и амплитудной модуляции, что позволяет закодировать до 256 позиций в одно колебание. Казалось бы, кодируй их туда по самое не хочу. К сожалению, увеличение количества позиций отрицательно сказывается на помехоустойчивости и разборчивости сигнала. Необходим некоторый компромисс.
Применяются механизмы эхокомпенсации. Этот механизм необходим для возможности одновременной передачи в обоих направлениях – дуплексного обмена. Суть его в том, что, зная свой сигнал, модем может одновременно с передачей принимать информацию, просто вычитая из результирующего сигнала в линии свой. Также этот механизм необходим для компенсации эффекта отражения своего сигнала, когда он возвращается к отправителю и увеличивает уровень помех на приеме.
Используются механизмы коррекции АЧХ. Телефонная линия обладает неравномерной амплитудно-частотной характеристикой, то есть различные частоты передаются по-разному. Для компенсации этого эффекта модем перед началом передачи выясняет, какие частоты затухают в линии, и при передаче эти самые частоты усиливает так, чтобы при приеме получить более-менее гладкую АЧХ.
Улучшаются корректирующие алгоритмы. В передаваемые данные преднамеренно вносится значительная избыточность для обеспечения помехоустойчивости. Если вкратце, то существуют некоторые запрещенные комбинации, при переходе в которые в передаваемых данных можно выявить ошибки и, при определенном стечении обстоятельств, скорректировать их. Можно использовать различные способы выявления ошибок, например применение циклических полиномов и сверточное кодирование. Суть первого заключается в вычислении некоторого остатка от деления на полином специального вида, выбранного оптимальным образом. Остаток дописывается отправителем к информационному блоку и на приеме заново вычисляется и сравнивается с принятым. Второй способ заключается в непрерывном сворачивании последующих данных на основании результатов свертки предыдущих, то есть вносится зависимость по определенному закону каждого нового передаваемого символа от предыдущего. При этом формируемые последовательности также содержат только разрешенные символы для возможности выявления ошибок.
Корректирующие алгоритмы постоянно развиваются для возможности контроля и исправления возникающих при передаче ошибок на все более высоких скоростях.
Оптимизация методов квитирования. При выявлении ошибки и невозможности ее исправления необходим механизм перезапроса передачи ошибочного блока информации. При этом необходимо оптимизировать передачу так, чтобы не ждать квитанции на каждый отправленный блок, но при этом и вовремя начинать повторную передачу. Для этого существует механизм скользящего окна, позволяющий передать определенное количество блоков без получения квитанции, и сдвиг этого окна при получении очередной квитанции. Оптимальная настройка размеров окна, величины передаваемых блоков и механизма отправки квитанции способна существенно повлиять на процесс передачи.
Сжатие. Как видно из описанного выше, процесс передачи – сложный и ресурсоемкий, и каждое увеличение скорости передачи дается потом и кровью. Поэтому необходимо сделать все возможное для того, чтобы засунуть в и без того тонкий канал как можно больше данных. Именно поэтому перед тем как выдать информацию в линию, модем пытается максимально сжать передаваемые данные, работая при этом как обычная программа-архиватор. К сожалению, эффективность его меньше упомянутых программ – это связано с необходимость сжатия на лету, что не позволяет проанализировать большие объемы данных перед кодированием (их размер ограничен величиной буфера).
Все это в совокупности позволяет достигать на зашумленной телефонной линии скоростей, позволяющих более-менее комфортно пользоваться Интернетом и перекачивать данные, не выходя из дома и не проводя дополнительные коммуникации. Да, следует добавить, не стоит ухудшить с трудом дошедший до тебя сигнал, ему и так плохо. Так что все телефоны, АОНы, автоответчики и иже с ними подключать нужно только в специальное гнездо модема, так как эти устройства могут активно влиять на происходящее в линии.
Внутренности
С момента своего появления модемы представляют собой своеобразный маленький компьютер. Внутри него присутствует микропроцессор, осуществляющий обработку передаваемых и получаемых данных, а также отвечающий за коммуникацию между узлами, небольшая оперативная память, используемая этим процессором, и постоянное запоминающее устройство для хранения выполняемой на процессоре программы.
В наше время, в связи с возросшей производительностью центральных процессоров, производители модемов в целях удешевления своих изделий переносят все большее количество операций, ранее выполняемых модемом аппаратно, в функции его драйвера. Это позволяет снизить цену устройства до ничтожных сумм, за счет использования вычислительных ресурсов твоего компьютера. Такие устройства называются soft-модемами.
Устройство модема
Микроконтроллер
Именно он выполняет операции по предварительному кодированию, сжатию и контролю ошибок в передаваемых данных.
Модулятор/Демодулятор
Этот узел отвечает за операции модуляции-демодуляции сигнала. Данное устройство модулирует информацию в синусоиду передающей частоты на передаче и вычленяет эту самую информацию на приеме.
Память:
EEPROM
Тут содержится собственно код, выполняемый микропроцессором модема. На многих модемах это микросхема flash, позволяющая заливать новые прошивки с исправленными ошибками либо новыми возможностями
NVRAM
Эта память предназначена для энергонезависимого хранения готовых профилей настроек.
RAM
Собственно, оперативная память, необходимая для размещения рабочей информации микроконтроллера.
Математика
Для реализации функции передачи данных по изначально не предназначенным для этого каналам связи модему приходится выполнять большое количество сложных алгоритмов, реализованных в поддерживаемых им протоколах. Поэтому современный модем является своего рода шедевром человеческой мысли.
Задачей протоколов является преобразование цифрового сигнала в аналоговый. Основная решаемая проблема – ограниченность полосы пропускания телефонной линии. Ее ширина составляет 3100 Гц (300-3400 Гц). Этого вполне достаточно для более-менее разборчивой передачи голоса. Для передачи же данных эта среда донельзя отвратительна, что является причиной относительно медленных скоростей передачи. Первые модемы работали на скоростях аж до 30 символов в секунду. Позже стандартом стали модемы со скоростью 2400. Теперь никого не удивишь скоростью в 33600 bit/s. Такая скорость достигается за счет применения различных методов модуляции (фазовой, частотной, амплитудной и их гибридов).
Модуляция – это преобразование несущего сигнала для передачи информации. Применяемыми в протоколах методами модуляции характеризуется максимально достижимая скорость в канале, а также совершенствование механизмов коррекции ошибок и адаптации к конкретной линии связи.
Эволюция протоколов
V.21 -300 bit/s, частотная модуляция, 1964 год;
V.22 - 1200 bit/s, относительная фазовая модуляция, 1980 год;
V.22bis - 2400 bit/s, 16-позиционная квадратурно-амплитудная модуляция, 1984 год;
V.32 - 9600 bit/s, 32-позиционная квадратурно-амплитудная модуляция;
V.32bis - 14400 bit/s, 128-позиционная квадратурно-амплитудная модуляция, Trellis-кодирование, появилась возможность динамического изменения скорости в зависимости от параметров линии, 1991 год;
V.34 - 28800 bit/s, 256-позиционная квадратурно-амплитудная модуляция, Trellis-кодирование, 1996 год;
V.34+ - 33600 bit/s, 256-позиционная квадратурно-амплитудная модуляция, Trellis-кодирование;
V.90 - 56700 bit/s.
Собственно, это уже не совсем аналоговая передача. Используется ИКМ-кодирование для входящего потока, и 256-позиционная квадратурно-амплитудная модуляция, Trellis-кодирование – для исходящего, 1998 год;
V.92 - 56700 bit/s, 2000 год.
Протоколы коррекции ошибок
Помимо ограниченности полосы пропускания телефонная линия обладает еще одной неприятной характеристикой – сильной зашумленностью. Это следствие наводок соседних витых пар, отвратительной среды залегания проводов и отсутствия какого-либо экранирования. Из-за этого при передаче достаточно большое количество информации искажается. Задачей протоколов коррекции ошибок является выявление фактов ошибок и при возможности их исправление. Достигается это внесением избыточности при кодировании данных, за счет которой удается выявлять сложные многократные ошибки. Также на эти протоколы возлагается задача перезапроса неправильных данных. Существуют как протоколы, запрашивающие передачу всех кадров (блоков информации) после поврежденного (REJ), так и запрашивающие передачу только самого поврежденного кадра (SREJ).
Примеры:
MNP4
V.42
Протоколы сжатия данных
Так как канал у нас очень тоненький, а данных много, приходится выжимать оттуда все по максимуму. Для этого предназначен этот подвид протоколов. Особенно хорошо жмутся текстовые данные и таблицы баз данных. И наоборот, почти не жмутся фильмы, архивы, музыка. Некоторые протоколы это знают и плюют в таких случаях, а некоторые усердно пережимают уже жатые данные, увеличивая тем самым их размер.
Примеры:
MNP5
V.42bis
Команды AT
Поскольку, как уже говорилось, модем передает данные по не предназначенным для этого линиям связи, которые очень сильно отличаются по своим характеристикам (одни – качественнее и позволяют достичь максимальной скорости передачи для данной среды, другие – сильно зашумлены и не дают развить большую скорость), модему приходится адаптироваться, балансируя между скоростью передачи и количеством возникающих ошибок. Однако предусмотреть все и «зашить» в микропрограмму – невозможно. Часто организация доступа у провайдера также вносит свои коррективы. Поэтому модемом иногда приходится управлять извне. Компьютер управляет модемом с помощью специальных команд. Очень распространенной является ситуация, когда при установлении соединения модем выбирает слишком высокую скорость, хотя линия на самом деле пестрит различного рода помехами, случайно разнесенными во времени и необязательно попадающими на момент согласования скоростей модема. Связь при этом будет либо постоянно рваться, либо часто будет происходить процедура пересогласования параметров соединения, что также сильно замедлит передачу данных. В этом случае с помощью AT-команд можно ограничить скорость соединения сверху. Тем самым уменьшится чувствительность модема к помехам, и, несмотря на меньшую скорость в канале, реальная скорость данных может возрасти и соединение станет устойчивей.
Например, для модемов USRobotics применялись такие команды:
AT&N13 – установка максимальной скорости в 26400.
Иногда может некорректно работать протокол SREJ – выборочный запрос повтора передачи, особенно на старых моделях модемов.
S27=64 – Отключить SREJ
Также иногда бывает полезно уменьшить уровень сигнала передатчика модема, если он не слышит сигнал удаленного модема.
ATS39=15 – установка минимального уровня (0 – авто, 1 – максимальный).
Также с помощью АТ-команд можно настраивать разрешенные символьные скорости, изменять реакцию модема на изменение параметров несущего сигнала, запрещать использование некоторых протоколов, настраивать разборчивость сигнала занято, изменять громкость и режимы работы динамика, создавать и сохранять профили настроек, узнавать статистику по соединениям и версию firmware.
Для перехода от режима передачи данных к режиму управления существует специальная комбинация "+++". Все команды начинаются с префикса AT, а модемы, поддерживающие такие команды, считаются HAYES-совместимыми (такое обозначение дано в честь фирмы, впервые применившей эти команды). Модем считывает команды после нажатия ENTER и при успешном ее разборе выводит OK, а при ошибке – ERROR. Существуют как непосредственные команды-действия, так и команды для изменения настроек модема, большинство из которых хранятся в S-регистрах.
Примеры для USR Sportster:
ATDP 999 99 99 – набрать введенный номер в импульсном режиме;
ATI7 – информация о прошивке;
ATI6 – статистика по последнему соединению;
ATI5 – сохраненные настройки;
ATI4 – текущие настройки;
AT~S? – серийный номер модема;
ATS39? – данные, содержащиеся в 39-м регистре;
ATS39=10 – изменение его содержимого;
AT$L – краткая справка по командам модема;
ATL0 – изменение громкости динамика (минимальная);
ATM0 – изменение режима работы спикера (выключение).
Альтернативы
xDSL
Это семейство технологий, которое постепенно вытесняет dial-up модемы из нашей повседневной жизни. Наиболее распространена в нашей стране технология ADSL – это несимметричный вариант для двухпроводного абонентского окончания. Принцип, на котором основано ее функционирование – максимальное использование возможностей витой пары, другими словами, телефонной «лапши».
Основной задачей обычных модемов является стремление уместить как можно больше данных в стандартную разговорную полосу (300-3400 Гц) с целью установки соединения сквозь многочисленные АТС, которые просто отрезают все частоты, помимо этих, во время уплотнения сигнала при передаче его вместе с сигналами других абонентов между станциями. При этом передавать данные и разговаривать по телефону большинство модемов не позволяет. А если и позволяет, то скорость передачи при этом падает до смешного. Создатели же xDSL заведомо исключили АТС из цепочки передачи между провайдером и пользователем. Из стандартной телефонной инфраструктуры используется только провод от абонента до АТС, где он заводится уже не на АТС, на ADSL-маршрутизатор, имеющий выход на АТС и на провайдера. Это позволило не ограничиваться при передаче голосовой полосой частот (так как АТС в процессе уже не участвует и, соответственно, ничего не режет), а выжимать из медной двухпроводки все, что она может. А может она, в зависимости от расстояния и условий местности залегания, предоставить полосу до 1 МГц и больше. Отличие от полосы, используемой обычным модемом, на несколько порядков соответственно сказывается и на максимально достижимой скорости передачи. Основными характеристиками ADSL является скорость в несколько мегабит для входящей информации и несколько десятков килобит – для исходящей и возможность голосовой связи без ухудшения параметров передачи данных. Также следует отметить несколько более высокую стоимость абонентских ADSL-устройств и необходимость присутствия соответствующего оборудования провайдера на твоей АТС.
Неравномерность скорости передачи связана с тем, что в большинстве случаев на долю исходящего трафика приходится только поток запросов и квитанций, на входящий – собственно, данные, а поток квитанций на порядок меньше потока информации.
Возможность разговора во время передачи обеспечивается выделением отдельной полосы частот для голосового канала, что при имеющемся ресурсе в 1 МГц проблемой не является.
Так что наш любимый старый модем «вырос», как всегда, из «нецелевого» использования чего-то старого и хорошо известного, то есть телефонной сети. И новые возможности приходят к нам благодаря модернизации ее же.
Глоссарий
Несущая частота – оптимальная для данного канала частота синусоидального сигнала, в которую модулируются передаваемые данные;
Уровень – моментальное значение напряжения в линии;
Колебание – периодическое изменение уровня синусоидального сигнала;
Амплитуда – максимальное значение уровня сигнала;
Фаза – сдвиг сигнала во времени;
Частота – количество максимальных уровней сигнала в секунду;
Избыточность – намеренная передача неинформационной служебной информации для добавления возможности обнаружения и коррекции возникающих в канале ошибок;
Квитирование – процесс подтверждения приемником факты получения данных;
Кадр – блок данных, содержащий полезную и служебную информацию;
Симметричная передача – передача в обе стороны с равными скоростями;
Ассиметричная передача – различие скоростей в зависимости от направления.